草庐IT

C++ 实例

全部标签

PHP 多实例单个日志文件

我对PHP有点陌生,所以我想知道您能否向我解释一下。我正在尝试编写一个将附加到日志文件的类。我已经编写了类,以便资源本身在Logger类中是静态的。这在我测试时非常有用,因为我可以让多个类实例化一个Logger对象,但所有类都将共享相同的静态资源以写入文件。也就是说,我现在面临PHP的多个实例(多个用户加载我的页面)的问题,更具体地说:并发性。问题:当我的站点遇到使用记录器的并发php实例时,它们是否会争夺对该文件的访问权限?我使用的是UBUNTU,但这对Windows有影响吗?在我的记录器文件中,我每添加X行检查一次,以查看文件的大小,如果大小大于Y,我将关闭该文件并“旋转”文件(m

php - 从变量实例化新对象

这个问题在这里已经有了答案:Calltoamemberfunctiononanon-object[duplicate](8个答案)关闭9年前。我正在使用以下类来自动加载我的所有类。这个类扩展了核心类。classclassAutoloaderextendsSH_Core{publicfunction__construct(){spl_autoload_register(array($this,'loader'));}privatefunctionloader($class_name){$class_name_plain=strtolower(str_replace("SH_","",$c

php - 从函数返回值创建新的类实例 - 一行代码

是否存在基于函数返回字符串创建类的新实例的单行代码(是的,我喜欢它们)?$obj=new{functionThatReturnsAStringValue()}(); 最佳答案 我明白你想要什么,但我认为你可以那样做:$obj=($class=functionThatReturnsAStringValue())?new$class():null; 关于php-从函数返回值创建新的类实例-一行代码,我们在StackOverflow上找到一个类似的问题: https

php - 以不区分大小写的方式实例化一个类

我遇到了一些问题。我在一个变量中有我的类名,我需要实例化它,但我无法知道我的变量与类的大小写完全相同。例子://TheclassI'mfetchingisnamed"App_Utils_MyClass"$var="myclass";$className="App_Utils_".$var;$obj=new$className();我怎样才能让它工作?附加信息:我在这段代码之前有一个class_exists()检查(不区分大小写),以确保我想要的类确实存在。类名始终采用驼峰式大小写(例如MySuperAwesomeClass)。 最佳答案

php - 混淆何时在 php 中从子类实例化父类

我正在创建一个网站,但为了进一步提高我的编码技能,我正在尝试利用OOP的力量来完成它。我正在使用类来验证表单输入,所以我想我会有一个“父”验证类,然后是每个提交的表单的子类(即登录类、注册类等),它们会负责将将正确的值存入数据库等。我看到的代码中,父对象是从子对象的构造函数中构造出来的。但是,我还没有这样做,但我的类(class)似乎仍然有效?有人能给我解释一下为什么我们要从子进程调用父构造函数吗?另外,我的代码是否只是因为我的parent有“公共(public)”功能(方法)才起作用?(这可能是一个问题)吗?我的代码(为清晰起见的删节版)如下:classValidation_Clas

php - 如何实例化抽象类的子单例?

我有一个抽象类和一个扩展抽象类的子类。这个child应该是一个单例。这是抽象类的简化示例:abstractclassAbstractClass{protectedstatic$instance=NULL;abstractprotectedfunctionmeInit();privatefunction__construct(){$this->meInit();$this->init();}privatefunction__clone(){}staticfunctiongetInstance(){if(is_null(self::$instance)){self::$instance=n

php - 为什么 Exception 不是 Throwable 的实例?

我认为在所有编程语言中,Exception类都是Throwable接口(interface)的实例。看看下面的代码,它显示Exception不是php中Throwable的实例。try{thrownewInvalidArgumentException("errormessage");}catch(InvalidArgumentException$e){if($einstanceofException){echo'$eisexception';//thislinegetsexecuted}if($einstanceofThrowable){echo'$eisthrowable';//bu

php - 如何从 Laravel 中的 Validator 实例获取经过验证的数据?

我手动创建了一个Validator,但找不到获取验证数据的方法。对于Request,验证数据从$request->validate([...])返回对于FormRequest,它是从$formRequest->validated()返回的但是对于Validator,我没有看到像上面那两个那样的方法。 最佳答案 假设您正在使用Validatorfacade:useIlluminate\Support\Facades\Validator;$validator=Validator::make($request->all(),$rules,

PHP:通过引用实例化类?

我正在将一些旧的PHP4.x代码转换为PHP5.3。我遇到了以下情况,但不确定它的作用。$variable=&newClassName();这和以下有什么区别:$variable=newClassName(); 最佳答案 在PHP4的旧时代,=&在构造对象时是必需的。在PHP5中,它不是。=&做引用赋值。例如:$a='a';$b=&$a;$b='b';echo$a;//Prints'b',sinceaandbhavebeenlinkedby&=.换句话说,它有它的用途,只是在实例化对象时没有。对于该用途,它已被弃用。

php - 如何检查一个对象是否可以使用 PHP 实例化

我不能这样做,但想知道什么会起作用:is_object(newMemcache){//assignmemcacheobject$memcache=newMemcache;$memcache->connect('localhost',11211);$memcache->get('myVar');}else{//dodatabasequerytogeneratemyVarvariable} 最佳答案 您可以使用class_exists()来检查一个类是否存在,但如果您可以实例化该类,它不会返回!你不能的原因之一,可能是它是一个抽象类。要